﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace VisionEstereo
{
	public partial class AlgLanktonParametros
	{
		private bool version2 = false; // Si estamos ejecutando la segunda versión del algoritmo o no

        //Atributos para el Esquema del Algoritmo de Correlación
        private Boolean es_esquemaCorrelacion;
        private VisionEstereo.AlgoritmoCorrelacion.EsquemaCorrelacion esquemaCorrelacion;

        public void setEsquemaAlg(VisionEstereo.AlgoritmoCorrelacion.EsquemaCorrelacion esquemaCorrelacion)
        {
            es_esquemaCorrelacion = true;
            this.esquemaCorrelacion = esquemaCorrelacion;
            //this.WindowHeight = 694;            
        }  
		
		public AlgLanktonParametros()
		{
			this.InitializeComponent();

			// Insert code required on object creation below this point.
		}
		
		public AlgLanktonParametros(bool version2)
		{
			this.InitializeComponent();
			this.version2 = version2;
		}        

		private void botonSiguiente_Click(object sender, System.Windows.RoutedEventArgs e)
		{
			// Creamos un objeto con los parámetros del algoritmo
			ProyectoSI.ParametrosAlgoritmoLankton parametros = new ProyectoSI.ParametrosAlgoritmoLankton();
			parametros.MaximaDisparidad = Int32.Parse(textMaximaDisparidad.Text);
			parametros.DesplazamientoVerticalDer = Int32.Parse(textDespVerticalDerecha.Text);
			parametros.DesplazamientoVerticalIzq = Int32.Parse(textDespVerticalIzquierda.Text);
			parametros.Verticalidad = Int32.Parse(textVerticalidad.Text);
			if (radioFiltroMedia.IsChecked == true)
			{
				parametros.Filtro = ProyectoSI.ParametrosAlgoritmoLankton.TipoFiltro.FiltroMedia;
			}
			else if (radioFiltroModa.IsChecked == true)
			{
				parametros.Filtro = ProyectoSI.ParametrosAlgoritmoLankton.TipoFiltro.FiltroModa;
			}
			parametros.Lvq = (checkLVQ.IsChecked == true);
			
			// Pasamos a selección de imágenes, informando convenientemente
			// del tipo de algoritmo
			if (!version2)
			{
				SeleccionImagenes selImagenes = new SeleccionImagenes(App.TipoAlgoritmo.AlgoritmoLankton, parametros);
				this.NavigationService.Navigate(selImagenes);
			}
			else
			{
                if (es_esquemaCorrelacion)
                {
                    SeleccionImagenes selImagenes = new SeleccionImagenes(App.TipoAlgoritmo.AlgoritmoLankton2, parametros);
                    selImagenes.setEsquemaAlg(esquemaCorrelacion);
                    this.NavigationService.Navigate(selImagenes);
                }
                else
                {
                    SeleccionImagenes selImagenes = new SeleccionImagenes(App.TipoAlgoritmo.AlgoritmoLankton2, parametros);
                    this.NavigationService.Navigate(selImagenes);
                }
			}
		}


	}
}